Code
El “Potenciar Trabajo” en datos. Miradas
relacionales entre concepciones y números para comprender su
constitución
Cynthia
Ferrari Mango y Ariana Bardauil
2023-09-24
Resultados
Perfil de os y las titulares del programa
En este apartado, caracterizamos el perfil de los y las titulares
teniendo en cuenta la edad, el género y la nacionalidad. En lo que
refiere ….. A nivel país, en la siguiente Pirámide Poblacional de los
Titulares del potenciar trabajo de Argentina (2020 y 2022).
El 86% de los titulares es Argentino. El 4.7% no tiene información
sobre la nacionalidad
Género y sexo
## [1] "61.17 %" "38.51 %" "0.18 %" "0.07 %" "0.05 %" "0.03 %" "100 %"
Distribución del Género
Datos de género y frecuencia
Género
Cantidad
Porcentaje
Mujer
970,555
61.17 %
Varón
611,010
38.51 %
Feminidad trans/travesti
2,867
0.18 %
Masculinidad trans
1,086
0.07 %
No Binarie
721
0.05 %
Otro
437
0.03 %
Total
1,586,676
100 %
## [1] "5111 corresponden a disidencias. Es decir, el 0.32 %"
Provincia de buenos aires
Titulares por provincia
## [1] "50.57 %" "5.05 %" "4.55 %" "3.8 %" "3.75 %" "3.71 %" "3.66 %"
## [8] "3.51 %" "3.46 %" "2.55 %" "2.06 %" "1.99 %" "1.97 %" "1.53 %"
## [15] "1.34 %" "1.24 %" "1.07 %" "0.92 %" "0.85 %" "0.8 %" "0.6 %"
## [22] "0.55 %" "0.29 %" "0.19 %" "100 %"
Distribución por Provincia
Cantidad y Porcentaje de titulares
Provincia
Cantidad
Porcentaje
Buenos Aires
802,380
50.57 %
Tucumán
80,126
5.05 %
Ciudad de Buenos Aires
72,152
4.55 %
Jujuy
60,231
3.8 %
Salta
59,494
3.75 %
Santa Fe
58,883
3.71 %
Chaco
58,009
3.66 %
Córdoba
55,716
3.51 %
Misiones
54,848
3.46 %
Santiago del Estero
40,398
2.55 %
Entre Ríos
32,752
2.06 %
Mendoza
31,513
1.99 %
Corrientes
31,307
1.97 %
San Juan
24,293
1.53 %
Formosa
21,210
1.34 %
Neuquén
19,610
1.24 %
Río Negro
16,970
1.07 %
La Rioja
14,644
0.92 %
Catamarca
13,542
0.85 %
Chubut
12,681
0.8 %
San Luis
9,481
0.6 %
Santa Cruz
8,738
0.55 %
La Pampa
4,601
0.29 %
Tierra del Fuego
3,035
0.19 %
Total
1,586,614
100 %
Evolución de los titulares / permanencia en el programa
Titulares por periodo y jurisdicción gráfico lineal
Distribución geográfica
Provincias
Titulares 2020
Titulares 2021
Titulares 2022
Porcentaje 2020
Porcentaje 2021
Porcentaje 2022
Ciudad Autónoma de Buenos Aires
36986
63105
64817
4.7374097
4.6248422
4.3951148
Buenos Aires
425489
700762
739912
54.4994249
51.3574778
50.1719951
Catamarca
5594
11652
12788
0.7165163
0.8539523
0.8671294
Córdoba
22680
46439
51562
2.9050033
3.4034236
3.4963190
Corrientes
15386
25595
29437
1.9707399
1.8758075
1.9960658
Chaco
26440
49599
55307
3.3866088
3.6350138
3.7502602
Chubut
4606
10172
11230
0.5899667
0.7454860
0.7614845
Entre Ríos
12207
26690
30759
1.5635527
1.9560580
2.0857080
Formosa
8986
17460
20447
1.1509859
1.2796093
1.3864713
Jujuy
27986
51057
56480
3.5846306
3.7418678
3.8297991
La Pampa
2079
3804
3975
0.2662920
0.2787877
0.2695370
La Rioja
6470
12518
13814
0.8287201
0.9174198
0.9367005
Mendoza
13150
26178
29658
1.6843383
1.9185345
2.0110514
Misiones
23115
45955
51982
2.9607210
3.3679522
3.5247984
Neuquén
7578
15938
17719
0.9706400
1.1680649
1.2014910
Río Negro
7909
14749
15241
1.0130367
1.0809254
1.0334626
Salta
27414
50718
56588
3.5113651
3.7170231
3.8371223
San Juan
11620
21305
22890
1.4883659
1.5614018
1.5521264
San Luis
4540
7868
8793
0.5815130
0.5766303
0.5962362
Santa Cruz
2618
7917
7835
0.3353306
0.5802215
0.5312761
Santa Fe
20495
46041
54784
2.6251342
3.3742549
3.7147966
Santiago del Estero
18670
34547
39144
2.3913762
2.5318821
2.6542786
Tucumán
47670
72016
76991
6.1058866
5.2779119
5.2206101
Tierra del Fuego, Antártida e Islas del Atlántico Sur
1034
2394
2598
0.1324415
0.1754516
0.1761653
Total
780722
1364479
1474751
100.0000000
100.0000000
100.0000000
Mapa en función del % poblacional
ano
total
total_pob
tot_prop
geometry
2020
780722
45376763
1.7
MULTIPOLYGON (((-68.60814 -…
2022
1474751
46234830
3.2
MULTIPOLYGON (((-68.60814 -…
Mapa Provincial
ano
total
total_pob
tot_prop
2020
425489
17541141
2.4
2021
700762
17709598
4.0
2022
739912
17875743
4.1
LS0tDQp0aXRsZTogIkVsIOKAnFBvdGVuY2lhciBUcmFiYWpv4oCdIGVuIGRhdG9zLiBNaXJhZGFzIHJlbGFjaW9uYWxlcyBlbnRyZSBjb25jZXBjaW9uZXMgeSBuw7ptZXJvcyBwYXJhIGNvbXByZW5kZXIgc3UgY29uc3RpdHVjacOzbiINCmF1dGhvcjogICJDeW50aGlhIEZlcnJhcmkgTWFuZ28geSBBcmlhbmEgQmFyZGF1aWwiDQpkYXRlOiAiYHIgU3lzLkRhdGUoKWAiDQpsYW5nOiAiZXMiDQpvdXRwdXQ6DQogIHJtZGZvcm1hdHM6OmRvd25jdXRlOg0KICAgIGxpZ2h0Ym94OiBUUlVFDQogICAgaGlnaGxpZ2h0OiB0YW5nbw0KICAgIHRvYzogMw0KICAgIG51bWJlci1zZWN0aW9uczogVFJVRQ0KICAgIGNvZGUtZm9sZGluZzogaGlkZQ0KICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUNCmVkaXRvcl9vcHRpb25zOiANCiAgbWFya2Rvd246IA0KICAgIHdyYXA6IDcyDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQod2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgZWNobyA9IEZBTFNFKQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KGphbml0b3IpDQpsaWJyYXJ5KHdhZmZsZSkNCmxpYnJhcnkocGxvdGx5KQ0KbGlicmFyeShzZikNCmxpYnJhcnkoc3RyaW5ncikNCmxpYnJhcnkobHVicmlkYXRlKQ0KbGlicmFyeShnZW9BcikNCmxpYnJhcnkoZ2dyZXBlbCkNCmxpYnJhcnkoZ3QpDQpsaWJyYXJ5KHNjYWxlcykNCmxpYnJhcnkocmVhZHhsKQ0KDQpvcHRpb25zKHNjaXBlbj05OTkpDQpgYGANCg0KIyBSZXN1bHRhZG9zDQoNCiMjIFBlcmZpbCBkZSBvcyB5IGxhcyB0aXR1bGFyZXMgZGVsIHByb2dyYW1hDQoNCkVuIGVzdGUgYXBhcnRhZG8sIGNhcmFjdGVyaXphbW9zIGVsIHBlcmZpbCBkZSBsb3MgeSBsYXMgdGl0dWxhcmVzIHRlbmllbmRvIGVuIGN1ZW50YSBsYSBlZGFkLCBlbCBnw6luZXJvIHkgbGEgbmFjaW9uYWxpZGFkLiBFbiBsbyBxdWUgcmVmaWVyZSDigKYuLg0KQSBuaXZlbCBwYcOtcywgZW4gbGEgc2lndWllbnRlIFBpcsOhbWlkZSBQb2JsYWNpb25hbCBkZSBsb3MgVGl0dWxhcmVzIGRlbCBwb3RlbmNpYXIgdHJhYmFqbyBkZSBBcmdlbnRpbmEgKDIwMjAgeSAyMDIyKS4NCg0KDQpFbCA4NiUgZGUgbG9zIHRpdHVsYXJlcyBlcyBBcmdlbnRpbm8uIEVsIDQuNyUgbm8gdGllbmUgaW5mb3JtYWNpw7NuIHNvYnJlIGxhIG5hY2lvbmFsaWRhZA0KDQo8IS0tIEhhYnLDrWEgcXVlIGxpbXBpYXJsby4gTm8gdGllbmUgc2VudGlkbyB1c2FybG8gLS0+DQoNCiMjIyBHw6luZXJvIHkgc2V4bw0KDQpgYGB7cn0NCg0KI3RpdHVsYXJlcyBzZSBwdWVkZW4gc2FjYXIgZGF0b3MgZGVsIHBlcmZpbCBkZSBsYSBwZXJzb25hIChzZXhvLCBlZGFkIHkgbXVuaWNpcGlvKQ0KDQp0aXR1bGFyZXNfcGVyc29uYXMgPC0gcmVhZF9jc3YoImRhdGEvcG90ZW5jaWFyLXRyYWJham8tbGlzdGFkby10aXR1bGFyZXMtMjAyMi0xMC0wMS5jc3YiKQ0KDQojIFNleG8NCmJhc2Vfc2V4byA8LSB0aXR1bGFyZXNfcGVyc29uYXMgfD4NCiAgIyBJbXB1dG8gc2V4byBhIGfDqW5lcm8gZW4gbG9zIGNhc29zIGVuIGxvcyBxdWUgbm8gaGF5IHZhbG9yZXMNCiAgbXV0YXRlKGdlbmVybyA9IGlmZWxzZShpcy5uYShnZW5lcm8pLCBzZXhvLCBnZW5lcm8pLA0KICAgICAgICAgZ2VuZXJvID1pZmVsc2UoZ2VuZXJvID09ICJGIiwgIk11amVyIiwgaWZlbHNlKGdlbmVybyA9PSAiTSIsICJWYXLDs24iLCBnZW5lcm8pKSkNCg0KDQojIE11ZXN0cm8gbGEgZGlzdHJpYnVjacOzbiBkZWwgZ8OpbmVybw0KdGFibGFfZ2VuZXJvIDwtIGJhc2Vfc2V4byB8PiANCiAgdGFieWwoZ2VuZXJvKSB8PiANCiAgYXJyYW5nZShkZXNjKG4pKSAgICU+JQ0KICBhZG9ybl90b3RhbHMgfD4gDQogIG11dGF0ZShwZXJjZW50ID0gcHJpbnQocGFzdGUocm91bmQocGVyY2VudCoxMDAsMiksICIlIikpKSB8PiANCiAgcmVuYW1lKA0KICAgICJDYW50aWRhZCIgPSBuLA0KICAgICJQb3JjZW50YWplIiA9IHBlcmNlbnQsDQogICAgIkfDqW5lcm8iID0gZ2VuZXJvDQogICkgfD4gDQogIGd0KCkgJT4lDQogIHRhYl9oZWFkZXIoDQogICAgdGl0bGUgPSAiRGlzdHJpYnVjacOzbiBkZWwgR8OpbmVybyIsDQogICAgc3VidGl0bGUgPSAiRGF0b3MgZGUgZ8OpbmVybyB5IGZyZWN1ZW5jaWEiDQogICkgJT4lDQogIGZtdF9udW1iZXIoDQogICAgY29sdW1ucyA9IGMoQ2FudGlkYWQpLA0KICAgIGRlY2ltYWxzID0gMCkgfD4gDQogIGZtdF9udW1iZXIoDQogICAgY29sdW1ucyA9IGMoUG9yY2VudGFqZSksDQogICAgZGVjaW1hbHMgPSAyKQ0KDQojbXVlc3Rybw0KdGFibGFfZ2VuZXJvDQoNCiMgR3VhcmRvIHRhYmxhDQpndHNhdmUodGFibGFfZ2VuZXJvLGZpbGVuYW1lID0gImdyYWZpY29zL2Rpc3RyaWJ1Y2lvbl9nZW5lcm8uaHRtbCIpDQoNCiMgQm9ycm8NCnJtKHRhYmxhX2dlbmVybykNCg0KI1BvcmNlbnRhamUgZGUgZGlzY2lkZW5jaWFzDQpwcmludChwYXN0ZSgyODY3KzEwODYrNzIxKzQzNywgImNvcnJlc3BvbmRlbiBhIGRpc2lkZW5jaWFzLiBFcyBkZWNpciwgZWwiLCAocm91bmQoKCgyODY3KzEwODYrNzIxKzQzNykvMTU4NjY3NikqMTAwLDIpKSwiJSIpKQ0KDQoNCmBgYA0KDQoNCmBgYHtyIGluY2x1ZGU9RkFMU0V9DQoNCiMgQ3JlbyBlbCByYW5nbyBldGFyaW8gcGFyYSBoYWNlciBsYSBwaXJhbWlkZSBwb2JsYWNpb25hbA0KdGl0dWxhcmVzX3BlcnNvbmFzIDwtIHRpdHVsYXJlc19wZXJzb25hcyB8PiANCiAgZmlsdGVyKCFpcy5uYShlZGFkKSkgfD4gDQogIG11dGF0ZShyYW5nb19ldGFyaW8gPSBjYXNlX3doZW4oDQogICAgICBlZGFkIDwgMjUgfiAiMTgtMjQiLA0KICAgICAgZWRhZCA8IDM1IH4gIjI1LTM0IiwNCiAgICAgIGVkYWQgPCA0NSB+ICIzNS00NCIsDQogICAgICBlZGFkIDwgNTUgfiAiNDUtNTQiLA0KICAgICAgZWRhZCA8IDY1IH4gIjU1LTY0IiwNCiAgICAgIGVkYWQgPj0gNjUgfiAiNjUtNzIiDQogICAgKSwNCiAgICByYW5nb19ldGFyaW8gPSBmYWN0b3IoDQogICAgICByYW5nb19ldGFyaW8sDQogICAgICBsZXZlbHMgPSBjKCIxOC0yNCIsDQogICAgICAgICAgICAgICAgICIyNS0zNCIsDQogICAgICAgICAgICAgICAgICIzNS00NCIsDQogICAgICAgICAgICAgICAgICI0NS01NCIsDQogICAgICAgICAgICAgICAgICI1NS02NCIsDQogICAgICAgICAgICAgICAgICI2NS03MiINCiAgICAgICAgICAgICAgICAgKQ0KICAgICkNCiAgKQ0KDQojZXNxdWlzc2U6OmVzcXVpc3Nlcih4KQ0KDQoNCg0KDQojIEFybW8gbGEgcGlyYW1pZGUNCg0KcGlyYW1pZGVfbmFjIDwtIHRpdHVsYXJlc19wZXJzb25hcyB8Pg0KICBncm91cF9ieShyYW5nb19ldGFyaW8sIHNleG8pIHw+DQogIHN1bW1hcmlzZShOID0gbigpKSB8Pg0KICBtdXRhdGUoTiA9IGlmZWxzZShzZXhvID09ICJNIiwtTiwgTikpIHw+DQogIHJlbmFtZSgNCiAgICAiUmFuZ28gZXRhcmlvIiA9IHJhbmdvX2V0YXJpbywNCiAgICAic2V4byIgPSBzZXhvLA0KICAgICJDYW50aWRhZCBkZSB0aXR1bGFyZXMiID0gTg0KICApIHw+IA0KICBnZ3Bsb3QoKSArDQogIGFlcyh4ID0gYFJhbmdvIGV0YXJpb2AsIHkgPSBgQ2FudGlkYWQgZGUgdGl0dWxhcmVzYCwgZmlsbCA9IHNleG8pICsNCiAgZ2VvbV9jb2woKSArDQogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGMoRiA9ICIjYjIyOTg3IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNID0gIiMyOTg3YjIiKSkgKw0KIGxhYnMoeCA9ICIgIiwgeSA9ICIgIiwgdGl0bGUgPSAiUGlyYW1pZGUgcG9ibGFjaW9uYWwgZGUgQXJnZW50aW5hIiwNCiAgICAgIHN1YnRpdGxlID0gIlRpdHVsYXJlcyBkZWwgUG90ZW5jaWFyIFRyYWJham8gZW50cmUgZWwgYcOxbyAyMDIwIHkgMjAyMiAoZW4gbWlsZXMpIiwNCiAgICAgIGNhcHRpb24gPSAiRnVlbnRlOiBFbGFib3JhY2nDs24gcHJvcGlhIGVuIGJhc2UgYSBkYXRvcyBhYmllcnRvcyBkZWwgTWluaXN0ZXJpbyBkZSBEZXNhcnJvbGxvIFNvY2lhbCBkZSBsYSBOYWNpw7NuIiwgDQogZmlsbCA9ICJTZXhvIikgICsNCiAgY29vcmRfZmxpcCgpICsNCiAgZ2d0aGVtZXM6OnRoZW1lX3BhbmRlcigpKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiLA0KICAgIHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE2TCwgZmFjZSA9ICJib2xkIiwgaGp1c3QgPSAwLjUpLA0KICAgIHBsb3Quc3VidGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0TCwgZmFjZSA9ICJpdGFsaWMiLCBoanVzdCA9IDAuNSksDQogICAgcGxvdC5jYXB0aW9uID0gZWxlbWVudF90ZXh0KHNpemUgPSA4TCksDQogICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHNpemUgPSA5TCksDQogICAgYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSA5TCksDQogICAgdGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID04TCkNCiAgKSArDQogIHNjYWxlX3lfY29udGludW91cyhicmVha3MgPSBjKCAtNTAwMDAsIC0xMDAwMDAsIC0xNTAwMDAsIC0yMDAwMDAsIC0yNTAwMDAsIC0zMDAwMDAsIC0zNTAwMDAsMCwgNTAwMDAsIDEwMDAwMCwgMTUwMDAwLCAyMDAwMDAsIDI1MDAwMCwgMzAwMDAwLCAzNTAwMDApLA0KICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gYyg1MCwgMTAwLCAxNTAsIDIwMCwgMjUwLCAzMDAsIDM1MCwwLCA1MCwgMTAwLCAxNTAsIDIwMCwgMjUwLCAzMDAsIDM1MCksDQogICAgICAgICAgICAgICAgICAgICBsaW1pdHMgPSBjKC0zNTAwMDAsMzUwMDAwKQ0KICAgICAgICAgICAgICAgICAgICApIA0KDQpnZ3NhdmUocGxvdCA9IHBpcmFtaWRlX25hYywgImdyYWZpY29zL3BpcmFtaWRlLWFyZ2VudGluYS5wbmciKQ0KDQpwbG90bHlfbmFjIDwtIGdncGxvdGx5KHBpcmFtaWRlX25hYykNCg0KcGxvdGx5X25hYw0Kcm0ocGlyYW1pZGVfbmFjKQ0KDQojR3VhcmRvIGh0bWwNCg0KYGBgDQoNCiMjIyBQcm92aW5jaWEgZGUgYnVlbm9zIGFpcmVzDQoNCmBgYHtyfQ0KDQojUGlyYW1pZGUgZGUgbGEgcHJvdmluY2lhIGRlIGJ1ZW5vcyBhaXJlcw0KdGl0dWxhcmVzX3BiYSA8LSB0aXR1bGFyZXNfcGVyc29uYXMgfD4NCiAgZmlsdGVyKHByb3ZpbmNpYV9pZCA9PSAiMDYiKSB8PiANCiAgZ3JvdXBfYnkocmFuZ29fZXRhcmlvLCBzZXhvKSB8Pg0KICBzdW1tYXJpc2UoTiA9IG4oKSkgfD4NCiAgbXV0YXRlKE4gPSBpZmVsc2Uoc2V4byA9PSAiTSIsLU4sIE4pKSB8Pg0KICByZW5hbWUoDQogICAgIlJhbmdvIGV0YXJpbyIgPSByYW5nb19ldGFyaW8sDQogICAgInNleG8iID0gc2V4bywNCiAgICAiQ2FudGlkYWQgZGUgdGl0dWxhcmVzIiA9IE4NCiAgKSANCg0KIyBBcm1vIHBpcmFtaWRlIGRlIHByb3ZpbmNpYSBkZSBidWVub3MgYWlyZXMNCnBpcmFtaWRhX3BiYSA8LSB0aXR1bGFyZXNfcGJhIHw+IA0KICBnZ3Bsb3QoKSArDQogIGFlcyh4ID0gYFJhbmdvIGV0YXJpb2AsIHkgPSBgQ2FudGlkYWQgZGUgdGl0dWxhcmVzYCwgZmlsbCA9IHNleG8pICsNCiAgZ2VvbV9jb2woKSArDQogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGMoRiA9ICIjYjIyOTg3IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNID0gIiMyOTg3YjIiKSkgKw0KIGxhYnMoeCA9ICIgIiwgeSA9ICIgIiwgdGl0bGUgPSAiUGlyYW1pZGUgcG9ibGFjaW9uYWwgZGUgQnVlbm9zIEFpcmVzIiwNCiAgICAgIHN1YnRpdGxlID0gIlRpdHVsYXJlcyBkZWwgUG90ZW5jaWFyIFRyYWJham8gZW50cmUgZWwgYcOxbyAyMDIwIHkgMjAyMiAoZW4gbWlsZXMpIiwNCiAgICAgIGNhcHRpb24gPSAiRnVlbnRlOiBFbGFib3JhY2nDs24gcHJvcGlhIGVuIGJhc2UgYSBkYXRvcyBhYmllcnRvcyBkZWwgTWluaXN0ZXJpbyBkZSBEZXNhcnJvbGxvIFNvY2lhbCBkZSBsYSBOYWNpw7NuIiwgDQogZmlsbCA9ICJTZXhvIikgICsNCiAgY29vcmRfZmxpcCgpICsNCiAgZ2d0aGVtZXM6OnRoZW1lX3BhbmRlcigpKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiLA0KICAgIHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE2TCwgZmFjZSA9ICJib2xkIiwgaGp1c3QgPSAwLjUpLA0KICAgIHBsb3Quc3VidGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0TCwgZmFjZSA9ICJpdGFsaWMiLCBoanVzdCA9IDAuNSksDQogICAgcGxvdC5jYXB0aW9uID0gZWxlbWVudF90ZXh0KHNpemUgPSA4TCksDQogICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHNpemUgPSA5TCksDQogICAgYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSA5TCksDQogICAgdGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID04TCkNCiAgKSArDQogIHNjYWxlX3lfY29udGludW91cyhicmVha3MgPSBjKCAtNTAwMDAsIC0xMDAwMDAsIC0xNTAwMDAsIC0yMDAwMDAsIDAsIDUwMDAwLCAxMDAwMDAsIDE1MDAwMCwgMjAwMDAwKSwNCiAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9IGMoNTAsIDEwMCwgMTUwLCAyMDAsIDAsIDUwLCAxMDAsIDE1MCwgMjAwKSwNCiAgICAgICAgICAgICAgICAgICAgIGxpbWl0cyA9IGMoLTIwMDAwMCwyMDAwMDApDQogICAgICAgICAgICAgICAgICAgICkgDQpnZ3NhdmUocGxvdD0gcGlyYW1pZGFfcGJhLCAiZ3JhZmljb3MvcGlyYW1pZGUtYmFpcmVzLnBuZyIpDQoNCiMgTXVlc3Rybw0KZ2dwbG90bHkocGlyYW1pZGFfcGJhKQ0KDQpybShwaXJhbWlkYV9wYmEpDQoNCmBgYA0KDQojIyMgVGl0dWxhcmVzIHBvciBwcm92aW5jaWENCg0KYGBge3J9DQojTW9kaWZpY28gZXJyb3JlcyBkZSBub21icmVzDQp0aXR1bGFyZXNfcGVyc29uYXMgPC0gdGl0dWxhcmVzX3BlcnNvbmFzIHw+DQogIG11dGF0ZShwcm92aW5jaWEgPSBpZmVsc2UocHJvdmluY2lhID09ICJDw4PCs3Jkb2JhIiwgIkPDs3Jkb2JhIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UocHJvdmluY2lhID09ICJFbnRyZSBSw4PCrW9zIiwiRW50cmUgUsOtb3MiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UocHJvdmluY2lhID09ICJUdWN1bcODwqFuIiwgIlR1Y3Vtw6FuIiwgcHJvdmluY2lhKSkpKSANCg0KIyBDcmVvIHRhYmxhDQp0aXR1bGFyZXNfcGVyc29uYXMgfD4gDQogIHRhYnlsKHByb3ZpbmNpYSkgfD4gDQogIGFycmFuZ2UoZGVzYyhuKSkgJT4lDQogIGFkb3JuX3RvdGFscyB8PiANCiAgbXV0YXRlKHBlcmNlbnQgPSBwcmludChwYXN0ZShyb3VuZChwZXJjZW50KjEwMCwyKSwgIiUiKSkpIHw+IA0KICByZW5hbWUoDQogICAgIkNhbnRpZGFkIiA9IG4sDQogICAgIlBvcmNlbnRhamUiID0gcGVyY2VudCwNCiAgICAiUHJvdmluY2lhIiA9IHByb3ZpbmNpYQ0KICApIHw+IA0KICBndCgpICU+JQ0KICB0YWJfaGVhZGVyKA0KICAgIHRpdGxlID0gIkRpc3RyaWJ1Y2nDs24gcG9yIFByb3ZpbmNpYSIsDQogICAgc3VidGl0bGUgPSAiQ2FudGlkYWQgeSBQb3JjZW50YWplIGRlIHRpdHVsYXJlcyAiDQogICkgJT4lDQogIGZtdF9udW1iZXIoDQogICAgY29sdW1ucyA9IGMoQ2FudGlkYWQpLA0KICAgIGRlY2ltYWxzID0gMCkgfD4gDQogIGZtdF9udW1iZXIoDQogICAgY29sdW1ucyA9IGMoUG9yY2VudGFqZSksDQogICAgZGVjaW1hbHMgPSAyKQ0KDQoNCmBgYA0KDQo8IS0tIFNlIHBvZHLDrWEgaGFjZXIgY29uIGxhcyBwcm95ZWNjaW9uZXMgZGVsIGluZGVjIGVsICUgZGUgcG9ibGFjacOzbiBxdWUgbG8gcmVjaWJlIHBhcmEgdmVyIHBvcmNlbnR1YWxtZW50ZSBjdWFudG8gcmVwcmVzZW50YSAtLT4NCg0KDQojIyBFdm9sdWNpw7NuIGRlIGxvcyB0aXR1bGFyZXMgLyBwZXJtYW5lbmNpYSBlbiBlbCBwcm9ncmFtYQ0KDQpUaXR1bGFyZXMgcG9yIHBlcmlvZG8geSBqdXJpc2RpY2Npw7NuIGdyw6FmaWNvIGxpbmVhbA0KDQpgYGB7cn0NCiN0aXR1bGFyZXMgcG9yIHBlcmlvZG8geSBqdXJpc2RpY2Npb24gKG11bmljaXBpbykNCnRvdGFsX3RpdHVsYXJlcyA8LSByZWFkX2NzdigiaHR0cHM6Ly9kYXRvc2FiaWVydG9zLmRlc2Fycm9sbG9zb2NpYWwuZ29iLmFyL2RhdGFzZXQvZDQ1Njg3YzAtZjJiYS00MWQ5LTk5ODktMGFkOTc5OTMwOGFlL3Jlc291cmNlL2M0Y2FhNzI0LWRmYmItNGFhYy1iZmU3LTIxNjlmNDE1NGJjNS9kb3dubG9hZC9wb3RlbmNpYXItdHJhYmFqby10aXR1bGFyZXMtYWN0aXZvcy0yMDIyLTEwLTAxLmNzdiIpDQojIFRpdHVsYXJlcyBwb3IgcGVyaW9kbyB5IGp1cmlzZGljY2nDs24gZ3LDoWZpY28gbGluZWFsDQoNCnRpdF9hcmdlbnRpbmEgPC0gdG90YWxfdGl0dWxhcmVzIHw+IA0KICBncm91cF9ieShwZXJpb2RvKSB8PiANCiAgc3VtbWFyaXNlKHRvdGFsX3RpdHVsYXJlcyA9IHN1bSh0aXR1bGFyZXMpLA0KICAgICAgICAgICAganVyaXNkaWNjaW9uID0gIkFyZ2VudGluYSIpIA0KDQpkZl90ZW5kZW5jaWEgPC0gdG90YWxfdGl0dWxhcmVzIHw+IA0KICBmaWx0ZXIocHJvdmluY2lhX2lkID09ICIwNiIpIHw+IA0KICBncm91cF9ieShwZXJpb2RvKSB8PiANCiAgc3VtbWFyaXNlKHRvdGFsX3RpdHVsYXJlcyA9IHN1bSh0aXR1bGFyZXMpLA0KICAgICAgICAgICAganVyaXNkaWNjaW9uID0gIkJ1ZW5vcyBBaXJlcyIpIHw+IA0KICBmdWxsX2pvaW4odGl0X2FyZ2VudGluYSkNCg0KDQpsaW5lYSA8LSBnZ3Bsb3QoZGZfdGVuZGVuY2lhKSArDQogIGFlcyh4ID0gcGVyaW9kbywgeSA9IHRvdGFsX3RpdHVsYXJlcywgY29sb3VyID0ganVyaXNkaWNjaW9uKSArDQogIGdlb21fbGluZSgpICsNCiAgZ2VvbV9wb2ludCgpICsNCiAgc2NhbGVfY29sb3JfYnJld2VyKHBhbGV0dGUgPSAiU2V0MiIsDQogICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAxKSArDQogIGxhYnMoDQogICAgeCA9ICIgIiwNCiAgICB5ID0gIiAiLA0KICAgIHRpdGxlID0gIkV2b2x1Y2nDs24gZGUgbGEgY2FudGlkYWQgZGUgdGl0dWxhcmVzICIsDQogICAgc3VidGl0bGUgPSAiRGVsIHRvdGFsIGRlbCBwYcOtcyB5IGRlIGxhIFByb3ZpbmNpYSBkZSBCdWVub3MgQWlyZXMgKDIwMjAtMjAyMikiLA0KICAgIGNhcHRpb24gPSAiRnVlbnRlOiBFbGFib3JhY2nDs24gcHJvcGlhIGVuIGJhc2UgYSBkYXRvcyBhYmllcnRvcyBkZWwgTURTTiIsDQogICAgY29sb3IgPSAiSnVyaXNkaWNjacOzbiINCiAgKSArDQogIGdndGhlbWVzOjp0aGVtZV9wYW5kZXIoKSArDQogIHRoZW1lKA0KICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJ0b3AiLA0KICAgIHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE1TCwgZmFjZSA9ICJib2xkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhqdXN0ID0gMC41KSwNCiAgICBwbG90LnN1YnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNEwsIGZhY2UgPSAiaXRhbGljIiwgaGp1c3QgPSAwLjUpDQogICkgKw0KICBzY2FsZV94X2RhdGUoZGF0ZV9sYWJlbHMgPSAiJWItJXkiLCBkYXRlX2JyZWFrcyA9ICIzIG1vbnRocyIpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGxhYmVscyA9IGNvbW1hKQ0KDQpnZ3NhdmUocGxvdCA9IGxpbmVhLCAiZ3JhZmljb3MvbGluZWEucG5nIikNCg0KZ2dwbG90bHkobGluZWEpDQpgYGANCg0KDQojIyBEaXN0cmlidWNpw7NuIGdlb2dyw6FmaWNhIA0KDQoNCg0KYGBge3J9DQpybShiYXNlX3NleG8sIGRmX3RlbmRlbmNpYSwgdGl0dWxhcmVzX3BiYSkNCg0KIyB1bHRpbW8gY29icm8gZGVsIHRpdHVsYXIgKHNlIHBvZHJpYSBtYXBlYXIpDQp0aXR1bGFyZXNfYW5vIDwtIHJlYWRfY3N2KCJodHRwczovL2RhdG9zYWJpZXJ0b3MuZGVzYXJyb2xsb3NvY2lhbC5nb2IuYXIvZGF0YXNldC9kNDU2ODdjMC1mMmJhLTQxZDktOTk4OS0wYWQ5Nzk5MzA4YWUvcmVzb3VyY2UvYzVjOTI1ZTAtN2NlMC00MWU1LWIzZmYtOGViYjUxZDRiZTcyL2Rvd25sb2FkL3BvdGVuY2lhci10cmFiYWpvLXRpdHVsYXJlcy0yMDIyLTEwLTAxLmNzdiIpDQoNCg0KIyBBcm1vIGVsIGdyYWZpY28gZGUgdGl0dWxhcmVzIHRvdGFsZXMNCiANCm1hcGFfcHJvdmluY2lhIDwtIHRpdHVsYXJlc19hbm8gfD4NCiAgbXV0YXRlKGFubyA9IHllYXIocGVyaW9kbykpIHw+IA0KICBncm91cF9ieShwcm92aW5jaWFfaWQsIGFubykgfD4gDQogIHN1bW1hcmlzZSh0b3RfdGl0dWxhcmVzPSBzdW0odGl0dWxhcmVzKSkNCg0KI2FncnVwbyBwb3IgYcOxbw0KbWFwYV9wcm92aW5jaWEgPC0gbWFwYV9wcm92aW5jaWEgfD4NCiAgZ3JvdXBfYnkoYW5vKSB8PiANCiAgbXV0YXRlKHRvdF9wcm9wID0gKHRvdF90aXR1bGFyZXMvc3VtKHRvdF90aXR1bGFyZXMpKSoxMDApDQoNCiMgQXJtbyB1bmEgdGFibGEgDQoNCiMgVmVjdG9yZXMgY29uIG5vbWJyZXMgZGUgcHJvdmluY2lhcyB5IGPDs2RpZ29zDQpub21icmVzX3Byb3ZpbmNpYXMgPC0gYygNCiAgIkNpdWRhZCBBdXTDs25vbWEgZGUgQnVlbm9zIEFpcmVzIiwNCiAgIkJ1ZW5vcyBBaXJlcyIsDQogICJDYXRhbWFyY2EiLA0KICAiQ8OzcmRvYmEiLA0KICAiQ29ycmllbnRlcyIsDQogICJDaGFjbyIsDQogICJDaHVidXQiLA0KICAiRW50cmUgUsOtb3MiLA0KICAiRm9ybW9zYSIsDQogICJKdWp1eSIsDQogICJMYSBQYW1wYSIsDQogICJMYSBSaW9qYSIsDQogICJNZW5kb3phIiwNCiAgIk1pc2lvbmVzIiwNCiAgIk5ldXF1w6luIiwNCiAgIlLDrW8gTmVncm8iLA0KICAiU2FsdGEiLA0KICAiU2FuIEp1YW4iLA0KICAiU2FuIEx1aXMiLA0KICAiU2FudGEgQ3J1eiIsDQogICJTYW50YSBGZSIsDQogICJTYW50aWFnbyBkZWwgRXN0ZXJvIiwNCiAgIlR1Y3Vtw6FuIiwNCiAgIlRpZXJyYSBkZWwgRnVlZ28sIEFudMOhcnRpZGEgZSBJc2xhcyBkZWwgQXRsw6FudGljbyBTdXIiDQopDQoNCnByb3ZpbmNpYV9pZCA8LSBjKA0KICAiMDIiLCAiMDYiLCAiMTAiLCAiMTQiLCAiMTgiLCAiMjIiLCAiMjYiLCAiMzAiLCAiMzQiLCAiMzgiLCAiNDIiLCAiNDYiLA0KICAiNTAiLCAiNTQiLCAiNTgiLCAiNjIiLCAiNjYiLCAiNzAiLCAiNzQiLCAiNzgiLCAiODIiLCAiODYiLCAiOTAiLCAiOTQiDQopDQoNCiNVbm8NCnRhYmxhX2NvZCA8LSBkYXRhLmZyYW1lKHByb3ZpbmNpYV9pZCxub21icmVzX3Byb3ZpbmNpYXMpDQoNCm1hcGFfcHJvdmluY2lhIDwtIG1hcGFfcHJvdmluY2lhIHw+IA0KICBsZWZ0X2pvaW4odGFibGFfY29kKQ0KDQp0YWJsYSA8LSBtYXBhX3Byb3ZpbmNpYSB8PiANCiAgc2VsZWN0KC1wcm92aW5jaWFfaWQpIHw+IA0KICBwaXZvdF93aWRlcihuYW1lc19mcm9tID0gYW5vLCB2YWx1ZXNfZnJvbSA9IGModG90X3RpdHVsYXJlcywgdG90X3Byb3ApKSB8PiANCiAgcmVuYW1lKCJQcm92aW5jaWFzIj0gbm9tYnJlc19wcm92aW5jaWFzLA0KICAgICAgICAgIlBvcmNlbnRhamUgMjAyMCIgPSB0b3RfcHJvcF8yMDIwLA0KICAgICAgICAgIlBvcmNlbnRhamUgMjAyMSIgPSB0b3RfcHJvcF8yMDIxLA0KICAgICAgICAgIlBvcmNlbnRhamUgMjAyMiIgPSB0b3RfcHJvcF8yMDIyLA0KICAgICAgICAgIlRpdHVsYXJlcyAyMDIwIiA9IHRvdF90aXR1bGFyZXNfMjAyMCwNCiAgICAgICAgICJUaXR1bGFyZXMgMjAyMSIgPSB0b3RfdGl0dWxhcmVzXzIwMjEsDQogICAgICAgICAiVGl0dWxhcmVzIDIwMjIiID0gdG90X3RpdHVsYXJlc18yMDIyLCkgfD4gDQogIGFkb3JuX3RvdGFscygpIA0KDQp0YWJsYSB8PiANCiAga2FibGVFeHRyYTo6a2FibGUoKQ0KDQojVGFibGEgcGFyYSBwb25lciBlbiBlbCB0cmFiYWpvIA0KDQp3cml0ZXhsOjp3cml0ZV94bHN4KHRhYmxhLCAiYmFzZXMtcGFyYS1jeW4vdGl0dWxhcmVzeHByb3ZpbmNpYXlhbm8ueGxzeCIpDQoNCg0KDQoNCmBgYA0KDQojIyMgTWFwYSBlbiBmdW5jacOzbiBkZWwgJSBwb2JsYWNpb25hbA0KDQpgYGB7cn0NCiMgVHJhaWdvIGVsIG1hcGEgZGUgYXJnZW50aW5hIGNvbiBwcm92aW5jaWFzDQptYXBhX2FyZyA8LSBnZXRfZ2VvKCJBUkdFTlRJTkEiLCBsZXZlbCA9ICJwcm92aW5jaWEiKSB8PiANCiAgcmVuYW1lKCJwcm92aW5jaWFfaWQiID0gY29kcHJvdl9jZW5zbykNCg0KY29kaWdvc19tYXBhIDwtIHNob3dfYXJnX2NvZGVzKHZpZXdlciA9IEZBTFNFLCBuaXZlbCA9ICJwcm92aW5jaWFzIikNCmBgYA0KDQoNCg0KYGBge3J9DQojIFRyYWlnbyBjc3YgcXVlIGFybWFtb3MgZW4gbGEgY2xhc2UgZGUgc2FsdWQgY29uIFINCnBvYmxhY2lvbl9pbmRlYyA8LSByZWFkX2NzdigiZGF0YS9yZXN1bHRhZG8uY3N2IikNCg0KIyBNZSB0cmFpZ28gbG9zIHRvdGFsZXMgcG9ibGFjaW9uYWxlcw0KcG9ibGFjaW9uIDwtIHBvYmxhY2lvbl9pbmRlYyB8PiANCiAgZmlsdGVyKCFqdXJpID09ICIwMSIpIHw+IA0KICAjIEHDsW8gMjAyMiB5IDIwMjAgcGFyYSB2ZXIgbGFzIGRvcyBmb3Rvcw0KICBmaWx0ZXIoYW5vID09IDIwMjIgfCBhbm8gPT0gMjAyMCkgfD4gDQogICMgVG90YWwgcG9yIHNlbw0KICBmaWx0ZXIoc2V4b19ub21icmUgPT0gIkFtYm9zIHNleG9zIikgfD4NCiAgZ3JvdXBfYnkoYW5vLGp1cmksIGp1cmlfbm9tYnJlKSB8PiANCiAgc3VtbWFyaXNlKHBvYmxhY2lvbiA9IHN1bShwb2JsYWNpb24pKSB8PiANCiAgI1BhcmEgcG9kZXIgam9pbmVhcg0KICByZW5hbWUoInByb3ZpbmNpYV9pZCIgPSBqdXJpKQ0KDQoNCg0KIyBBcm1hbW9zIGxhIHByb3BvcmNpw7NuIGRlIHRpdHVsYXJlcyBzb2JyZSBsYSBwb2JsYWNpw7NuIHByb3llY3RhZGENCm1hcGFfcHJvdmluY2lhX3BvYiA8LSBtYXBhX3Byb3ZpbmNpYSB8Pg0KICBmaWx0ZXIoYW5vICVpbiUgYygyMDIwLCAyMDIyKSkgfD4gDQogIGxlZnRfam9pbihwb2JsYWNpb24pIHw+IA0KICBncm91cF9ieShhbm8sIHByb3ZpbmNpYV9pZCkgfD4gDQogIG11dGF0ZShwcm9wX3BvbmxhY2lvbmFsID0gKHRvdF90aXR1bGFyZXMvcG9ibGFjaW9uKSkNCg0KDQptYXBhX3Byb3ZpbmNpYV9wb2IkcHJvcF9wb25sYWNpb25hbCA8LSByb3VuZChtYXBhX3Byb3ZpbmNpYV9wb2IkcHJvcF9wb25sYWNpb25hbCoxMDAsMikNCg0KI2d1YXJkbyBleGNlbCkqDQp3cml0ZXhsOjp3cml0ZV94bHN4KG1hcGFfcHJvdmluY2lhX3BvYiwgImJhc2VzLXBhcmEtY3luL3RvdF90aXR1bGFyZXNfcHJvdmluY2lhX2luZGVjLnhsc3giKQ0KDQojVW5vIGNvbiBlbCBtYXBhIA0KbWFwYV9wb2IgPC0gbWFwYV9hcmcgfD4gDQogIGxlZnRfam9pbihtYXBhX3Byb3ZpbmNpYV9wb2IpDQoNCm1hcGFfbmFjIDwtIGdncGxvdChtYXBhX3BvYikgKw0KICBnZW9tX3NmKGFlcyhmaWxsID0gcHJvcF9wb25sYWNpb25hbCkpICsNCiAgZ2VvbV9zZl90ZXh0KA0KICAgIGFlcyhsYWJlbCA9IHBhc3RlMChwcm9wX3BvbmxhY2lvbmFsLCAiJSIpKSwNCiAgICBzaXplID0gMS44LA0KICAgIGZhY2UgPSAiYm9sZCIsDQogICAgY29sb3VyID0gImJsYWNrIiwNCiAgICBoanVzdCA9IDAuNQ0KICApICsNCiAgc2NhbGVfZmlsbF92aXJpZGlzX2Mob3B0aW9uID0gInBsYXNtYSIsDQogICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9IC0xLA0KICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBwZXJjZW50X2Zvcm1hdChzY2FsZSA9IDEpKSArDQogIGdndGhlbWVzOjp0aGVtZV9wYW5kZXIoKSArDQogIGxhYnModGl0bGUgPSAiUG9yY2VudGFqZSBkZSB0aXR1bGFyZXMgcG9yIHByb3ZpbmNpYSIsDQogICAgICAgc3VidGl0bGUgPSAiRW4gYmFzZSBhIHByb3llY2Npb25lcyBkZSBJTkRFQyIsDQogICAgICAgZmlsbCA9ICJQb3JjZW50YWplIikgKw0KICB0aGVtZSgNCiAgICBwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNkwsIGZhY2UgPSAiYm9sZCIsIGhqdXN0ID0gMC41KSwNCiAgICBwbG90LnN1YnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNEwsIGZhY2UgPSAiaXRhbGljIiwgaGp1c3QgPSAwLjUpLA0KICAgIHRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEpDQogICkgKw0KICB5bGFiKCIiKSArDQogIHhsYWIoIiIpICsNCiAgZmFjZXRfd3JhcCh2YXJzKGFubykpICAgIyBBw7FhZGUgc2NhbGVzID0gImZyZWUiIHBhcmEgYWp1c3RhciBsYXMgZXNjYWxhcyBkZSBsb3MgZWplcyBlbiBjYWRhIHBhbmVsDQoNCg0KZ2dzYXZlKHBsb3QgPSBtYXBhX25hYywgImdyYWZpY29zL21hcGEtcG9yYy10aXR1bGFyZXMteC1wb2JsYWNpb24ucG5nIikNCg0KbWFwYV9wb2IgfD4gDQogIGdyb3VwX2J5KGFubykgfD4gDQogIHN1bW1hcmlzZSh0b3RhbCA9c3VtKHRvdF90aXR1bGFyZXMpLA0KICAgICAgICAgICAgdG90YWxfcG9iID1zdW0ocG9ibGFjaW9uKSwNCiAgICAgICAgICAgIHRvdF9wcm9wID0gcm91bmQoKHRvdGFsL3RvdGFsX3BvYikqMTAwLDEpKSB8PiANCiAgc2VsZWN0KC1nZW9tZXRyeSkgfD4gDQogIGthYmxlRXh0cmE6OmthYmxlKCkNCg0KDQptYXBhX25hY19pbnRlcmFjdGl2byA8LSBnZ3Bsb3QobWFwYV9wb2IpICsNCiAgZ2VvbV9zZihhZXMoZmlsbCA9IHByb3BfcG9ubGFjaW9uYWwsIHRleHQgPSBwYXN0ZSgiUHJvdmluY2lhOiIsIGp1cmlfbm9tYnJlLCAiPGJyPlBvcmNlbnRhamU6IiwgcHJvcF9wb25sYWNpb25hbCwgIiUiKSkpICsNCiAgc2NhbGVfZmlsbF92aXJpZGlzX2Mob3B0aW9uID0gInBsYXNtYSIsDQogICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9IC0xLA0KICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBwZXJjZW50X2Zvcm1hdChzY2FsZSA9IDEpKSArDQogIGdndGhlbWVzOjp0aGVtZV9wYW5kZXIoKSArDQogIGxhYnModGl0bGUgPSAiUG9yY2VudGFqZSBkZSB0aXR1bGFyZXMgcG9yIHByb3ZpbmNpYSBlbiBiYXNlIGEgcHJveWVjY2lvbmVzIGRlIElOREVDIiwNCiAgICAgICBmaWxsID0gIlBvcmNlbnRhamUiKSArDQogIHRoZW1lKA0KICAgIHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE2TCwgZmFjZSA9ICJib2xkIiwgaGp1c3QgPSAwLjUpLA0KICAgIHBsb3Quc3VidGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0TCwgZmFjZSA9ICJpdGFsaWMiLCBoanVzdCA9IDAuNSksDQogICAgdGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gMSkNCiAgKSArDQogIHlsYWIoIiIpICsNCiAgeGxhYigiIikgKw0KICBmYWNldF93cmFwKHZhcnMoYW5vKSkNCg0KZ2dwbG90bHkobWFwYV9uYWNfaW50ZXJhY3Rpdm8sIHRvb2x0aXAgPSAidGV4dCIpDQpgYGANCg0KDQpNYXBhIFByb3ZpbmNpYWwNCg0KYGBge3J9DQojcGFyYSB2ZXIgY3VhbCBlcyBlbCBjb2RpZ28NCiNjb2RpZ29zX21hcGEgPC0gc2hvd19hcmdfY29kZXModmlld2VyID0gRkFMU0UsIG5pdmVsID0gInByb3ZpbmNpYXMiKQ0KIyBUcmFpZ28gZWwgbWFwYSBkZSBhcmdlbnRpbmEgY29uIHByb3ZpbmNpYXMNCm1hcGFfYmEgPC0gZ2V0X2dlbygiQlVFTk9TIEFJUkVTIiwgbGV2ZWwgPSAiZGVwYXJ0YW1lbnRvIikgDQoNCiNUcmFpZ28gbGEgcHJveWVjY2lvbiBwb2JsYWNpb25hbCBkZSBJTkRFQyBxdWUgaGljZSBwYXJhIGxhIG1hdGVyaWEgZGUgc2FsdWQgZGUgUiBkZSBNR0FJRQ0KDQpiYV9kZXB0b19pbmRlYyA8LSByZWFkX2V4Y2VsKCJkYXRhL3Byb3llY2Npb25lc19kZXB0b19pbmRlYy54bHN4IikgfD4gDQogIGNsZWFuX25hbWVzKCkgfD4gDQogICMgZmlsdHJvIHBvciBwcm92aW5jaWEgZGUgYnVlbm9zIGFpcmVzDQogIGZpbHRlcihqdXJpX2NvZGlnbyA9PSAiMDYiKSB8PiANCiAgIyBtZSBxdWVkbyBjb24gbGEgaW5mbyBkZSBhbWJvcyBzZXhvcw0KICBmaWx0ZXIoc2V4b19ub21icmUgPT0gIkFtYm9zIHNleG9zIikgfD4gDQogICNGaWx0cm8gbG9zIGHDsW9zDQogIGZpbHRlcihhbm8gJWluJSBjKDIwMjAsIDIwMjEsIDIwMjIpKSB8PiANCiAgcmVuYW1lKCJwcm92aW5jaWFfaWQiID0ganVyaV9jb2RpZ28pDQoNCiMgVGl0dWxhcmVzIA0KdGl0dWxhcmVzX2JhIDwtIHRpdHVsYXJlc19hbm8gfD4gDQogICMgRmlsdHJvIGxvcyBkZSBidWVub3MgYWlyZXMNCiAgZmlsdGVyKHByb3ZpbmNpYV9pZCA9PSAiMDYiKSB8PiANCiAgIyBDcmVvIHVuYSBjb2x1bW5hIGNvbiBlbCBjb2RpZ28gc2luIGVsIDA2IGRlIGxhIHByb3ZpbmNpYSBwYXJhIHBvZGVyIG1hdGNoZWFyIGNvbiBlbCBjZW5zbw0KICBtdXRhdGUoZGVwYXJ0YW1lbnRvX2NvZGlnbyA9IHN1YnN0cihkZXBhcnRhbWVudG9faWQsIDMsIG5jaGFyKGRlcGFydGFtZW50b19pZCkpLA0KICAgICAgICAgYW5vID0gYXMuY2hhcmFjdGVyKHllYXIocGVyaW9kbykpKSANCg0KIyBVbm8gYW1iYXMgYmFzZXMgcGFyYSBwb2RlciBvcGVyYXINCm1hcGFfcGJhIDwtIGJhX2RlcHRvX2luZGVjIHw+IA0KICBsZWZ0X2pvaW4odGl0dWxhcmVzX2JhIHw+IA0KICAgICAgICAgICAgICBzZWxlY3QoLWMobXVuaWNpcGlvLCBtdW5pY2lwaW9faWQsIA0KICAgICAgICAgICAgICAgICAgICAgICAgZGVwYXJ0YW1lbnRvX2lkLA0KICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmluY2lhLA0KICAgICAgICAgICAgICAgICAgICAgICAgZGVwYXJ0YW1lbnRvKSkpIHw+IA0KICBtdXRhdGUocG9yY2VudGFqZSA9ICh0aXR1bGFyZXMvcG9ibGFjaW9uKSoxMDApIA0KDQpiYXNlX2ZpbmFsX3BiYSA8LSBtYXBhX2JhIHw+IA0KICBsZWZ0X2pvaW4obWFwYV9wYmEgfD4gDQogIHNlbGVjdChkZXBhcnRhbWVudG9fbm9tYnJlLGRlcGFydGFtZW50b19jb2RpZ28sIGFubywgcG9yY2VudGFqZSkgfD4gDQogICAgcmVuYW1lKCJjb2RkZXB0b19jZW5zbyIgPSBkZXBhcnRhbWVudG9fY29kaWdvKSB8PiANCiAgICBmaWx0ZXIoISBhbm8gPT0gIjIwMjEiKSkNCg0KDQp0YWJsYV9wYmEgPC0gbWFwYV9wYmEgfD4gDQogIHNlbGVjdChkZXBhcnRhbWVudG9fbm9tYnJlLCBhbm8sIHBvYmxhY2lvbiwgdGl0dWxhcmVzLCBwb3JjZW50YWplKSB8PiANCiAgcGl2b3Rfd2lkZXIobmFtZXNfZnJvbSA9IGFubywgdmFsdWVzX2Zyb20gPSBjKHBvYmxhY2lvbiwgdGl0dWxhcmVzLCBwb3JjZW50YWplKSkgDQoNCkRUOjpkYXRhdGFibGUodGFibGFfcGJhKQ0KDQp3cml0ZXhsOjp3cml0ZV94bHN4KHRhYmxhX3BiYSwgImJhc2VzLXBhcmEtY3luL3RhYmxhX3BiYS54bHN4IikNCmBgYA0KDQoNCmBgYHtyfQ0KDQptYXBhX2J1ZW5vc19haXJlcyA8LSBiYXNlX2ZpbmFsX3BiYSB8PiANCiAgZ2dwbG90KCkgKw0KICBnZW9tX3NmKGFlcyhmaWxsID0gcG9yY2VudGFqZSwgdGV4dCA9IHBhc3RlKCJEZXBhcnRhbWVudG86IiwgZGVwYXJ0YW1lbnRvX25vbWJyZSwgIjxicj5Qb3JjZW50YWplOiIsIHJvdW5kKHBvcmNlbnRhamUsMSksICIlIikpKSArDQogIHNjYWxlX2ZpbGxfdmlyaWRpc19jKG9wdGlvbiA9ICJwbGFzbWEiLA0KICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAtMSwNCiAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gcGVyY2VudF9mb3JtYXQoc2NhbGUgPSAxKSkgKw0KICBnZ3RoZW1lczo6dGhlbWVfcGFuZGVyKCkgKw0KICBsYWJzKHRpdGxlID0gIlBvcmNlbnRhamUgZGUgdGl0dWxhcmVzIHBvciBkZXBhcnRhbWVudG8iLA0KICAgICAgIHN1YnRpdGxlID0gIkVuIGJhc2UgYSBwcm95ZWNjaW9uZXMgZGUgSU5ERUMiLA0KICAgICAgIGZpbGwgPSAiUG9yY2VudGFqZSIpICsNCiAgdGhlbWUoDQogICAgcGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTZMLCBmYWNlID0gImJvbGQiLCBoanVzdCA9IDAuNSksDQogICAgcGxvdC5zdWJ0aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTRMLCBmYWNlID0gIml0YWxpYyIsIGhqdXN0ID0gMC41KSwNCiAgICB0ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxKQ0KICApICsNCiAgeWxhYigiIikgKw0KICB4bGFiKCIiKSArDQogIGZhY2V0X3dyYXAodmFycyhhbm8pKSAgICMgQcOxYWRlIHNjYWxlcyA9ICJmcmVlIiBwYXJhIGFqdXN0YXIgbGFzIGVzY2FsYXMgZGUgbG9zIGVqZXMgZW4gY2FkYSBwYW5lbA0KDQojbWFwYV9idWVub3NfYWlyZXMNCg0KZ2dzYXZlKHBsb3QgPSBtYXBhX2J1ZW5vc19haXJlcywgImdyYWZpY29zL21hcGFfYnVlbm9zX2FpcmVzLnBuZyIpDQoNCiMgTG9zIGRhdG9zIHRvdGFsZXMgZGUgbGEgcHJvdmluY2lhDQptYXBhX3BiYSB8PiANCiAgZ3JvdXBfYnkoYW5vKSB8PiANCiAgc3VtbWFyaXNlKHRvdGFsID1zdW0odGl0dWxhcmVzKSwNCiAgICAgICAgICAgIHRvdGFsX3BvYiA9c3VtKHBvYmxhY2lvbiksDQogICAgICAgICAgICB0b3RfcHJvcCA9IHJvdW5kKCh0b3RhbC90b3RhbF9wb2IpKjEwMCwxKSl8PiANCiAga2FibGVFeHRyYTo6a2FibGUoKQ0KDQoNCg0KZ2dwbG90bHkobWFwYV9idWVub3NfYWlyZXMsIHRvb2x0aXAgPSAidGV4dCIpDQpgYGANCg0KIyMgTW9udG9zIA0KDQpgYGB7cn0NCiMgRmlsdHJvIGVsIG1vbnRvIHBvciBwb3RlbmNpYXIgdHJhYmFqbw0KbW9udG9zX3ZpZ2VudGVzIDwtIHJlYWRfY3N2KCJodHRwczovL2RhdG9zYWJpZXJ0b3MuZGVzYXJyb2xsb3NvY2lhbC5nb2IuYXIvZGF0YXNldC8yZmJmYjNlMi1jZDBhLTRkMWItYWMzYi04OTMyNmU4ZTRmOWMvcmVzb3VyY2UvNjc3ODM5NmUtNzVmNy00ZmNlLWFjNjUtOTdkMWU1ZTQ1MjVlL2Rvd25sb2FkL21vbnRvcy10cmFuc2ZlcmVuY2lhcy0yMDIzLTAxLTAxLmNzdiIpIHw+IA0KICBmaWx0ZXIocHJvZ3JhbWEgPT0gIlBvdGVuY2lhciBUcmFiYWpvIikgfD4gDQogIG11dGF0ZShwZXJpb2RvID0gZm9ybWF0LkRhdGUocGVyaW9kbywgIiVtLyVZIikpDQoNCg0KIyBUcmFpZ28gZWwgSVBDIGRlIElOREVDIHBhcmEgcGFzYXIgbHMgbW9udG9zIGEgcHJlY2lvcyByZWFsZXMNCg0KaXBjIDwtIHJlYWRfZXhjZWwoImRhdGEvc2hfaXBjXzA5XzIzLnhscyIsIA0KICAgIHNoZWV0ID0gImFuYWxpc2lzX3BvdGVuY2lhciIpIHw+DQogIGNsZWFuX25hbWVzKCkgfD4gDQogIG11dGF0ZShwZXJpb2RvID0gZm9ybWF0LkRhdGUoZmVjaGEsICIlbS8lWSIpKSB8PiANCiAgc2VsZWN0KC1mZWNoYSkgfD4gDQogIHJlbmFtZSgiaXBjIiA9IG5pdmVsX2dlbmVyYWwpIHw+IA0KICByaWdodF9qb2luKG1vbnRvc192aWdlbnRlcykgfD4gDQogIG11dGF0ZShtb250b19yZWFsID0gbW9udG8vaXBjLA0KICAgICAgICAgcGVyaW9kbyA9IGFzLkRhdGUocGFzdGUoIjAxLyIsIHBlcmlvZG8sIHNlcCA9ICIiKSwgZm9ybWF0ID0gIiVkLyVtLyVZIikpDQoNCg0KDQpgYGANCg0KYGBge3J9DQoNCiMgQXJtbyBncmFmaWNvIGRlbCBJUEMNCg0KbGluZWFfaXBjIDwtIGdncGxvdChpcGMpICsNCiAgYWVzKHggPSBwZXJpb2RvLCB5ID0gbW9udG9fcmVhbCkgKw0KICBnZW9tX2xpbmUoKSArDQogIGdlb21fcG9pbnQoKSArDQogIGxhYnMoDQogICAgeCA9ICIgIiwNCiAgICB5ID0gIiAiLA0KICAgIHRpdGxlID0gIkV2b2x1Y2nDs24gZGUgbG9zIG1vbnRvcyBkZWwgcHJvZ3JhbWEgKDIwMjAtMjAyMikiLA0KICAgIGNhcHRpb24gPSAiRnVlbnRlOiBFbGFib3JhY2nDs24gcHJvcGlhIGVuIGJhc2UgYWwgSVBDIGRlIElOREVDIiwNCiAgKSArDQogIGdndGhlbWVzOjp0aGVtZV9wYW5kZXIoKSArDQogIHRoZW1lKA0KICAgIGxlZ2VuZC5wb3NpdGlvbiA9ICJ0b3AiLA0KICAgIHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE1TCwgZmFjZSA9ICJib2xkIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhqdXN0ID0gMC41KSwNCiAgICBwbG90LnN1YnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNEwsIGZhY2UgPSAiaXRhbGljIiwgaGp1c3QgPSAwLjUpDQogICkgKw0KICBzY2FsZV94X2RhdGUoZGF0ZV9sYWJlbHMgPSAiJWItJXkiLCBkYXRlX2JyZWFrcyA9ICIzIG1vbnRocyIpICsNCiAgc2NhbGVfeV9jb250aW51b3VzKGxhYmVscyA9IGNvbW1hLCBsaW1pdHMgPSBjKDAsNTApKQ0KDQoNCmdnc2F2ZShwbG90ID0gbGluZWFfaXBjLCAiZ3JhZmljb3MvbGluZWFfaXBjLnBuZyIpDQoNCmdncGxvdGx5KGxpbmVhX2lwYykNCmBgYA0KDQpodHRwczovL3d3dy5pbmRlYy5nb2IuYXIvaW5kZWMvd2ViL05pdmVsNC1UZW1hLTMtNS0zMQ==